iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
生成式 AI

T 大使 AI 之旅系列 第 7

【Day 07】程式實戰前的準備

  • 分享至 

  • xImage
  •  

前情提要

上一篇文章了解了 Hugging Face 這個開源模型的大平台,但想要開發還是需要寫程式。別的程式語言我不熟我是不知道,但 Python 的套件百百種,如果發生套件衝突或者版本打架的問題,那是非常的頭痛。

Python 虛擬環境

虛擬環境的重要性

我自己覺得使用 Python 開發的話,虛擬環境其實比基礎語法都還要重要。每個專案使用的版本或需要的套件不一樣,若沒有使用虛擬環境,就必須根據不同的需求下載或更新函式庫,這樣不但會讓我們的開發環境變得混亂,管理起來也相當麻煩。所以對我來說基本上我是一個專案綁定一個虛擬環境,幫助我隔離不同專案在開發上相互依賴的關係。

主流的虛擬環境

因為我的電腦是 MacOS,所以我只會提 Mac 的部分,跟 Windows 可能有些許差異。

  1. Virtualenv :這個虛擬環境創建工具中應該是最熱門的,也很好入門。相對另外兩個虛擬環境來的輕量的,不會佔用太大的電腦空間。但我這次鐵人賽不會使用這個工具,因為其實我沒怎麼用過,但因為他最熱門所以還是提一下。

本機安裝 Python,接著安裝套件即可
pip install virtualenv

  1. Conda:有用過 Jupyter Notebook 這個編輯器的應該都知道 Anaconda 這個軟體,但很多人都不知道 Anaconda 還有 conda 這個虛擬環境創建工具 (我的同屆同學很多人都是)。如果是使用 ipynb 檔 (Jupyter Notebook 文件) 類型開發的人,conda 虛擬環境是很好的工具。

Anaconda 安裝 點我進入 Anaconda 官網

  1. Poetry:Poetry 這個工具特別的是他可以幫助我們管理套件之間的依賴 (下面會舉例),簡單來說就是如果裝了一個套件他有依賴其他套件,然後將那個套件移除,依賴的套件也會跟著移除。他的核心主要是提供了一個中心化的地方來存儲專案的 metadata 和 dependancy,就是 pyproject.toml 檔。看不懂沒關係,看過一個例子就會懂了。

Poetry 安裝要透過 Terminal 指令

  • 使用 Homebrew
    • brew install poetry
  • 使用 curl
    • curl -sSL https://install.python-poetry.org | python3 -

Conda

在我的第三天 【Day 03】Ollama UI 本機建置 有用到 conda 虛擬環境,但沒有詳細分享。那我就簡單分享一下 conda 的指令。除了創建環境這些指令跟 Virtualenv 不一樣,其他後續執行 Python 或安裝套件都是一樣的。

  1. 檢查 conda 版本,同時也可以確定有安裝成功
conda -V

2024-08-11 11.11.43

  1. 建立虛擬環境,主要設定兩個參數:虛擬環境的名稱和 Python 的版本。我這邊虛擬環境命名為 "test",Python 版本 3.11。打開 Anaconda 軟體可以直接操作使用者介面來建立。
# -n 和 --name 都可以
conda create -n test python=3.11
conda create --name test python=3.11
  1. 檢查有無建立成功,執行指令檢查本機的所有 conda 環境,可以看到剛剛創建的 "test"。
conda env list

2024-08-11 11.26.02

  1. 啟動/關閉虛擬環境。可以看到在 Terminal 後面出現 "test",代表成功進入虛擬環境。
# 開啟虛擬環境
conda activate openwebui

# 關閉虛擬環境
conda deactivate

2024-08-11 11.32.38

  1. 刪除虛擬環境
# -n 和 --name 都可以
conda env remove -n test
conda env remove --name test

Poetry

Poetry 我這邊分享幾個我比較常會用到的幾個指令,想知道詳細更多可以參考 Koko 老師的文章 -> 連結在這邊

不知道有沒有人跟我一樣裝完 Poetry 之後在 Terminal 輸入還是沒辦法使用 Poetry。我的方法是使用 Poetry 前要先輸入一個指令 export PATH=$PATH:$HOME/.local/bin ,這樣就可以使用 Poetry 了。但是這麼長的指令很難記起來,所以推薦可以 Mac 的人去裝 oh-my-zsh。在每次打開 Finder 的資料夾的隱藏文件中找到 .zshrc ,然後編輯找到 alias 把前面的那個指令改成你記得起來的指令,這樣雖然使用 Poetry 多一個步驟但不會很麻煩,目前我只知道這個方法。
https://ithelp.ithome.com.tw/upload/images/20240811/20168336dt2Jvy7WMX.png

  1. 創建 Poetry 專案,Python 版本會根據本機的 Python 版本來指定
poetry new test

2024-08-11 11.59.42

  1. 進入/退出 Poetry 虛擬環境 (記得先進入專案資料夾)
# 開啟虛擬環境
poetry shell

# 關閉虛擬環境
exit

2024-08-11 12.02.51

  1. 安裝/移除套件,可以看到安裝套件時,會一併連依賴項一起安裝,移除也會連依賴項一併移除,不像 pip 只會移除該套件而已,當然如果別的套件有依賴同樣的套件的話,該依賴項並不會一起被移除。
# 安裝套件
poetry add pandas

# 指定版本
poetry add pandas=1.5.3

# 移除套件
poetry remove pandas

2024-08-11 12.07.29

  1. 查看套件版本
poetry show pandas

2024-08-11 12.24.18

  1. 更新套件,要先去專案資料夾底下的 pyproject.toml 檔將套件改成你要的版本,透過這個指令就可以更新套件。這個指令超級強大,更新套件版本時也解析並更新依賴。有更新過 Python 套件的人常常都會受到依賴項衝突所困。
# 更新所有套件
poetry update

# 更新指定套件
poetry update pandas

2024-08-11 12.29.17
6. 匯出 requirements.txt,因為 poetry 是用 pyproject.toml 來管理套件,今天如果跟別人 co-work 的話還是少不了 requirements.txt。只要使用以下指令 poetry 就會將該環境需要安裝的套件整理好了,包括所有套件的依賴,真的是非常強大!

poetry export -f requirements.txt --without-hashes > requirements.txt

結論

今天分享了 Conda 和 Poetry 兩個主要的虛擬環境,我自己開始一個專案用一個虛擬環境就再也沒遇過環境打架的問題。主要我還是以 Poetry 為主,如果需要 ipynb 開發的話才會用 Conda。接下來就要開始進入程式實戰的部分了!

題外話🤣

不知道使用 Mac 的大家會不會美化自己的終端機呢?Mac 內建的 Terminal 原本都是黑底白字,在 debug 的時候真的看的眼睛很痛。這邊分享 powerlevel10k 和前面有提到的 oh-my-zsh,在終端機體驗上是大大的提升,不僅視覺體驗上升,也有一些 plugins 和 alias 幫助提升我的生產力,真的相當的方便!

下一篇文章:Hugging Face 文本生成實戰


上一篇
【Day 06】Hugging Face 入門指南
下一篇
【Day 08】Hugging Face 文本生成實戰
系列文
T 大使 AI 之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言